/**
 * Composite window is a window that contains and lays out
 * one or more child windows together.
 *
 * @author Andrey Anisimov <hercules@inbox.ru>
 * @see core.ui.ComboBox, core.ui.Marquee
 */

import core.ui.Window;

class CompositeWindow extends Window {
	
	/**
	 * @protected
	 * Calls automatically every time window size is changed.
	 */
	this.updateLayout = function() {
		// TODO: implement
	}
	
	this.resize = function(width, height) {
		super.resize(width, height);
		this.updateLayout();
	}
	
	this.setStyle = function(name, value) {
		super.setStyle(name, value);
		this.updateLayout();
	}
	
	this.setStyleId = function(id) {
		super.setStyleId(id);
		this.updateLayout();
	}

	this.setStyleName = function(style) {
		super.setStyleName(style);
		this.updateLayout();
	}
	
	this.addStyleName = function(style) {
		super.addStyleName(style);
		this.updateLayout();
	}
	
	this.removeStyleName = function(style) {
		super.removeStyleName(style);
		this.updateLayout();
	}
	
	this.clearStyleName = function() {
		super.clearStyleName();
		this.updateLayout();
	}
}